Pular para o conteúdo

[AJUDA] Comando composto [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. [AJUDA] Comando composto [RESOLVIDO]

Enviado em 27/12/2010 - 18:20h

Gente, alguém poderia me dizer o aconteceria seu eu digitasse no terminal o comando
:(){ :|:& };:

Eu não consigo entender essa sintaxe. Será que alguém poderia me explicar por favor?

Responder tópico

3. Re: [AJUDA] Comando composto [RESOLVIDO]

Enviado em 28/12/2010 - 09:58h

Nossa... q dica tosca!

Vou explicar o q significa isso. Esse comando é um fork, ou seja, ele gera um loop no sistema, executando processos infinitos até travar tudo. Na verdade, isso é uma função q se chama : e o comando é executar o comando : (isso msm... é um comando q num faz nada) e em pipe rodando : em background. Depois chama a função com o nome :. O sistema fica rodando o comando : indefinidamente até travar. Um exemplo d função pra vc entender melhor:

nome_da_funcao(){
comando1 | comando2 &
}
nome_da_funcao

É a msm coisa, só q roda em uma linha só, veja:

:(){
: | : &
}
:

Uma forma d evitar isso é limitando o número d processos rodados ao msm tempo por usuários comuns, com o pam.

4. Re: [AJUDA] Comando composto [RESOLVIDO]

Enviado em 28/12/2010 - 10:03h

É bem como o Renato disse. É a mesma coisa que você criar um programa que chame o fork() infinitas vezes, algo como:

==================
for(;;)
{
fork();
}

==================

o fork() cria processos filhos em sistemas UNIX, esse loop criaria processos infinitamente, ou melhor, até o sistema parar de responder e finalmente travar. Procure por fork bomb, para mais informações. Ou se preferir digite "man fork" no terminal. Se você tiver as man pages instaladas, esse comando irá lhe retornar algumas informações.


5. Re: [AJUDA] Comando composto [RESOLVIDO]

Enviado em 29/12/2010 - 01:50h

Ah entendi tudo!
E não se preocupem eu n ia digitar aquilo no terminal, Só queria saber o que significava :(){ por exemplo, nem imaginava que fosse uma função. xD
Valeu pela ajuda =D

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder